package com.jrx.anytxn.customer.dto.customer;

import com.jrx.anytxn.i18n.annotation.ConvertField;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 *  客户额度表的res
 *  @author Qingyao Xing
 * @date 2019/7/18 11:42
 */
public class CustomerLimitInfoRes implements Serializable {

    private static final long serialVersionUID = 1925747894961563435L;
    /**
     * 自增主键
     * 表字段:id
     */
    private Long id;

    /**
     * 租户id
     * 表字段:tenant_id
     */
    private String tenantId;

    /**
     * 客户id
     * 表字段:customer_id
     */
    private String customerId;

    /**
     * 业务机构id
     * 表字段:organization_id
     */
    private String organizationId;

    /**
     * 额度编号
     * 表字段:limit_id
     */
    private String limitId;

    /**
     * 中文名称
     * 表字段:chinese_name
     */
    private String chineseName;

    /**
     * 英文名称
     * 表字段:english_name
     */
    private String englishName;

    /**
     * 状态	0 = 失效，1正常
     * 表字段:status
     */
    private String limitStatus;

    /**
     * 额度类型	0 = 信用额度 1 = 抵押额度2 = 担保额度3 = 兜底额度4 = 其他
     * 表字段:type
     */
    private String limitClass;

    /**
     * 额度属性 0 = 循环额度 1 = 非循环额度
     * 表字段:use_mode
     */
    private String useMode;

    /**
     * 检核标识	 0 = 不检查 1检查 用信是否检核本节点可用额度
     * 表字段:auth_check
     */
    private String authCheck;

    /**
     * 当前生效额度
     * 表字段:limit
     */
    private BigDecimal limitAmount;

    /**
     * 可用额度
     * 表字段:limit_available
     */
    private BigDecimal limitAvailable;

    /**
     * 当前额度生效日期
     * 表字段:limit_effective_date
     */
    private Date limitEffectiveDate;

    /**
     * 当前额度失效日期
     * 表字段:limit_expiry_date
     */
    private Date limitExpiryDate;

    /**
     * 永久额度
     * 表字段:limit_perm
     */
    private BigDecimal limitPerm;

    /**
     * 临时额度
     * 表字段:limit_temp
     */
    private BigDecimal limitTemp;

    /**
     * 临时额度失效日期
     * 表字段:limit_temp_end_date
     */
    private Date limitTempEndDate;

    /**
     * 临时额度生效日期
     * 表字段:limit_temp_start_date
     */
    private Date limitTempStartDate;

    /**
     * 已使用额度
     * 表字段:limit_used
     */
    private BigDecimal limitUsed;

    /**
     * 实时还款未入账金额
     * 表字段:online_payment_amount
     */
    private BigDecimal onlinePaymentAmount;

    /**
     * 父节点额度编号
     * 表字段:father_id
     */
    private String fatherId;

    /**
     * 继承比例
     * 表字段:obtain_percentage
     */
    private BigDecimal obtainPercentage;

    /**
     * 0 = 开放 1 = 闭合
     * 表字段:oc_flag
     */
    private String ocFlag;

    /**
     * 渠道号
     * 表字段:channel
     */
    private String channel;

    /**
     * 合同号
     * 表字段:contract_number
     */
    private String contractNumber;

    /**
     * 创建时间
     * 表字段:create_time
     */
    private Date createTime;

    /**
     * 最后更新时间
     * 表字段:update_time
     */
    private Date updateTime;

    /**
     * 最后更新操作员
     * 表字段:update_by
     */
    private String updateBy;

    /**
     * 记录版本号
     * 表字段:record_version_number
     */
    private Integer recordVersionNumber;

    /**
     * 获取自增主键
     * @return id Long
     */
    public Long getId() {
        return id;
    }

    /**
     * 设置自增主键
     * @param id 自增主键
     */
    public void setId(Long id) {
        this.id = id;
    }

    /**
     * 获取客户id
     * @return customerId String
     */
    public String getCustomerId() {
        return customerId;
    }

    /**
     * 设置客户id
     * @param customerId 客户id
     */
    public void setCustomerId(String customerId) {
        this.customerId = customerId == null ? null : customerId.trim();
    }

    /**
     * 获取业务机构id
     * @return organizationId String
     */
    public String getOrganizationId() {
        return organizationId;
    }

    /**
     * 设置业务机构id
     * @param organizationId 业务机构id
     */
    public void setOrganizationId(String organizationId) {
        this.organizationId = organizationId == null ? null : organizationId.trim();
    }

    /**
     * 获取额度编号
     * @return limitId String
     */
    public String getLimitId() {
        return limitId;
    }

    /**
     * 设置额度编号
     * @param limitId 额度编号
     */
    public void setLimitId(String limitId) {
        this.limitId = limitId == null ? null : limitId.trim();
    }

    /**
     * 获取中文名称
     * @return chineseName String
     */
    public String getChineseName() {
        return chineseName;
    }

    /**
     * 设置中文名称
     * @param chineseName 中文名称
     */
    public void setChineseName(String chineseName) {
        this.chineseName = chineseName == null ? null : chineseName.trim();
    }

    /**
     * 获取英文名称
     * @return englishName String
     */
    public String getEnglishName() {
        return englishName;
    }

    /**
     * 设置英文名称
     * @param englishName 英文名称
     */
    public void setEnglishName(String englishName) {
        this.englishName = englishName == null ? null : englishName.trim();
    }


    public String getLimitClass() {
        return limitClass;
    }

    public void setLimitClass(String limitClass) {
        this.limitClass = limitClass;
    }

    /**
     * 获取额度属性 0 = 循环额度 1 = 非循环额度
     * @return useMode String
     */
    public String getUseMode() {
        return useMode;
    }

    /**
     * 设置额度属性 0 = 循环额度 1 = 非循环额度
     * @param useMode 额度属性 0 = 循环额度 1 = 非循环额度
     */
    public void setUseMode(String useMode) {
        this.useMode = useMode == null ? null : useMode.trim();
    }

    /**
     * 获取检核标识	 0 = 不检查 1检查 用信是否检核本节点可用额度
     * @return authCheck String
     */
    public String getAuthCheck() {
        return authCheck;
    }

    /**
     * 设置检核标识	 0 = 不检查 1检查 用信是否检核本节点可用额度
     * @param authCheck 检核标识	 0 = 不检查 1检查 用信是否检核本节点可用额度
     */
    public void setAuthCheck(String authCheck) {
        this.authCheck = authCheck == null ? null : authCheck.trim();
    }

    public String getLimitStatus() {
        return limitStatus;
    }

    public void setLimitStatus(String limitStatus) {
        this.limitStatus = limitStatus;
    }

    public BigDecimal getLimitAmount() {
        return limitAmount;
    }

    public void setLimitAmount(BigDecimal limitAmount) {
        this.limitAmount = limitAmount;
    }

    /**
     * 获取可用额度
     * @return limitAvailable BigDecimal
     */
    public BigDecimal getLimitAvailable() {
        return limitAvailable;
    }

    /**
     * 设置可用额度
     * @param limitAvailable 可用额度
     */
    public void setLimitAvailable(BigDecimal limitAvailable) {
        this.limitAvailable = limitAvailable;
    }

    /**
     * 获取当前额度生效日期
     * @return limitEffectiveDate Date
     */
    public Date getLimitEffectiveDate() {
        return limitEffectiveDate;
    }

    /**
     * 设置当前额度生效日期
     * @param limitEffectiveDate 当前额度生效日期
     */
    public void setLimitEffectiveDate(Date limitEffectiveDate) {
        this.limitEffectiveDate = limitEffectiveDate;
    }

    /**
     * 获取当前额度失效日期
     * @return limitExpiryDate Date
     */
    public Date getLimitExpiryDate() {
        return limitExpiryDate;
    }

    /**
     * 设置当前额度失效日期
     * @param limitExpiryDate 当前额度失效日期
     */
    public void setLimitExpiryDate(Date limitExpiryDate) {
        this.limitExpiryDate = limitExpiryDate;
    }

    /**
     * 获取永久额度
     * @return limitPerm BigDecimal
     */
    public BigDecimal getLimitPerm() {
        return limitPerm;
    }

    /**
     * 设置永久额度
     * @param limitPerm 永久额度
     */
    public void setLimitPerm(BigDecimal limitPerm) {
        this.limitPerm = limitPerm;
    }

    /**
     * 获取临时额度
     * @return limitTemp BigDecimal
     */
    public BigDecimal getLimitTemp() {
        return limitTemp;
    }

    /**
     * 设置临时额度
     * @param limitTemp 临时额度
     */
    public void setLimitTemp(BigDecimal limitTemp) {
        this.limitTemp = limitTemp;
    }

    /**
     * 获取临时额度失效日期
     * @return limitTempEndDate Date
     */
    public Date getLimitTempEndDate() {
        return limitTempEndDate;
    }

    /**
     * 设置临时额度失效日期
     * @param limitTempEndDate 临时额度失效日期
     */
    public void setLimitTempEndDate(Date limitTempEndDate) {
        this.limitTempEndDate = limitTempEndDate;
    }

    /**
     * 获取临时额度生效日期
     * @return limitTempStartDate Date
     */
    public Date getLimitTempStartDate() {
        return limitTempStartDate;
    }

    /**
     * 设置临时额度生效日期
     * @param limitTempStartDate 临时额度生效日期
     */
    public void setLimitTempStartDate(Date limitTempStartDate) {
        this.limitTempStartDate = limitTempStartDate;
    }

    /**
     * 获取已使用额度
     * @return limitUsed BigDecimal
     */
    public BigDecimal getLimitUsed() {
        return limitUsed;
    }

    /**
     * 设置已使用额度
     * @param limitUsed 已使用额度
     */
    public void setLimitUsed(BigDecimal limitUsed) {
        this.limitUsed = limitUsed;
    }

    /**
     * 获取实时还款未入账金额
     * @return onlinePaymentAmount BigDecimal
     */
    public BigDecimal getOnlinePaymentAmount() {
        return onlinePaymentAmount;
    }

    /**
     * 设置实时还款未入账金额
     * @param onlinePaymentAmount 实时还款未入账金额
     */
    public void setOnlinePaymentAmount(BigDecimal onlinePaymentAmount) {
        this.onlinePaymentAmount = onlinePaymentAmount;
    }

    /**
     * 获取父节点额度编号
     * @return fatherId String
     */
    public String getFatherId() {
        return fatherId;
    }

    /**
     * 设置父节点额度编号
     * @param fatherId 父节点额度编号
     */
    public void setFatherId(String fatherId) {
        this.fatherId = fatherId == null ? null : fatherId.trim();
    }

    /**
     * 获取继承比例
     * @return obtainPercentage BigDecimal
     */
    public BigDecimal getObtainPercentage() {
        return obtainPercentage;
    }

    /**
     * 设置继承比例
     * @param obtainPercentage 继承比例
     */
    public void setObtainPercentage(BigDecimal obtainPercentage) {
        this.obtainPercentage = obtainPercentage;
    }

    /**
     * 获取0 = 开放 1 = 闭合
     * @return ocFlag String
     */
    public String getOcFlag() {
        return ocFlag;
    }

    /**
     * 设置0 = 开放 1 = 闭合
     * @param ocFlag 0 = 开放 1 = 闭合
     */
    public void setOcFlag(String ocFlag) {
        this.ocFlag = ocFlag == null ? null : ocFlag.trim();
    }

    /**
     * 获取渠道号
     * @return channel String
     */
    public String getChannel() {
        return channel;
    }

    /**
     * 设置渠道号
     * @param channel 渠道号
     */
    public void setChannel(String channel) {
        this.channel = channel == null ? null : channel.trim();
    }

    /**
     * 获取合同号
     * @return contractNumber String
     */
    public String getContractNumber() {
        return contractNumber;
    }

    /**
     * 设置合同号
     * @param contractNumber 合同号
     */
    public void setContractNumber(String contractNumber) {
        this.contractNumber = contractNumber == null ? null : contractNumber.trim();
    }

    /**
     * 获取创建时间
     * @return createTime Date
     */
    public Date getCreateTime() {
        return createTime;
    }

    /**
     * 设置创建时间
     * @param createTime 创建时间
     */
    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    /**
     * 获取最后更新时间
     * @return updateTime Date
     */
    public Date getUpdateTime() {
        return updateTime;
    }

    /**
     * 设置最后更新时间
     * @param updateTime 最后更新时间
     */
    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    /**
     * 获取最后更新操作员
     * @return updateBy String
     */
    public String getUpdateBy() {
        return updateBy;
    }

    /**
     * 设置最后更新操作员
     * @param updateBy 最后更新操作员
     */
    public void setUpdateBy(String updateBy) {
        this.updateBy = updateBy == null ? null : updateBy.trim();
    }

    /**
     * 获取记录版本号
     * @return recordVersionNumber Integer
     */
    public Integer getRecordVersionNumber() {
        return recordVersionNumber;
    }

    /**
     * 设置记录版本号
     * @param recordVersionNumber 记录版本号
     */
    public void setRecordVersionNumber(Integer recordVersionNumber) {
        this.recordVersionNumber = recordVersionNumber;
    }

    public String getTenantId() {
        return tenantId;
    }

    public void setTenantId(String tenantId) {
        this.tenantId = tenantId;
    }
}
